home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 008a / paragen2.zip / INVOICE.PAS < prev    next >
Pascal/Delphi Source File  |  1991-03-28  |  12KB  |  385 lines

  1. (*----------------------------------------------------------------
  2.             INVOICE.PAS Generated by PARAGen version 2.20          
  3. ------------------------------------------------------------------
  4.   PROJECT         : Demo invoice program
  5.   AUTHOR          : Innovative Data Solutions, Inc.
  6.   DATE            : 03/14/1991
  7.   TIME            : 07:06PM
  8.   CODING STYLE    : 2  - [Standard C]
  9.   TAB EXPANSION   : ON
  10.   TABLE           : INVOICE.DB - [Fields: 7, Key Fields: 2]
  11.   DATABASE FIELDS          PARADOX                   PARAGEN
  12.                            -------                   -------
  13.                     (01) - Catalog Number            CatalogNumber             
  14.                     (02) - Invoice Number            InvoiceNumber             
  15.                     (03) - Invoice Date              InvoiceDate               
  16.                     (04) - Unit Price                UnitPrice                 
  17.                     (05) - Amount                    Amount                    
  18.                     (06) - Discount                  Discount                  
  19.                     (07) - Ship Via                  ShipVia                   
  20.   GENERATED BY    : Innovative Data Solutions, Inc. Paradox Code Generator
  21.                     4318 Stewart Court
  22.                     East Chicago,  IN 46312
  23.                     (219)-397-8952
  24. -----------------------------------------------------------------*)
  25.  
  26. UNIT INVOICE;
  27.  
  28. (*----------------------------------------------------------------
  29.                      Interface section of UNIT                      
  30. -----------------------------------------------------------------*)
  31.  
  32. INTERFACE
  33.  
  34. USES
  35.     PXEngine;
  36.  
  37. (*----------------------------------------------------------------
  38.                        'Pascal' Access Structure                       
  39. -----------------------------------------------------------------*)
  40.  
  41. TYPE
  42.  
  43.     INVOICETABLEENTRY = RECORD        
  44.         CatalogNumber : Double;                           (* KEY FIELD *)
  45.         InvoiceNumber : Double;                           (* KEY FIELD *)
  46.         InvoiceDateMonth : Integer;                       
  47.         InvoiceDateDay : Integer;                         
  48.         InvoiceDateYear : Integer;                        
  49.         UnitPrice : Double;                               
  50.         Amount : Double;                                  
  51.         Discount : Double;                                
  52.         ShipVia : string;                                 
  53.     END;
  54.  
  55.  
  56. (*----------------------------------------------------------------
  57.             Copy,Rename,Open,Get and Put Constants and Types                 
  58. -----------------------------------------------------------------*)
  59.  
  60.     SrcOrDestType = (Source,Destination);
  61.     GetOrPutType =  (Get,Put);
  62.  
  63. CONST
  64.  
  65.     NoPassword : String = 'None';
  66.     Buffered : Boolean = False;
  67.  
  68.     INVOICEName : String = 'INVOICE';
  69.  
  70.     
  71. (*----------------------------------------------------------------
  72.                             Field Size Constants                      
  73.     -----------------------------------------------------------------*)
  74.  
  75.     FSZSHIPVIA : Integer =                  10;       
  76.     
  77. (*----------------------------------------------------------------
  78.                Engine Handles and Global Variables                
  79. -----------------------------------------------------------------*)
  80.  
  81. VAR
  82.     INVOICETable : TableHandle;
  83.     INVOICERecord : RecordHandle;
  84.     INVOICECatalogNumber : FieldHandle;                    (* KEY FIELD *)
  85.     INVOICEInvoiceNumber : FieldHandle;                    (* KEY FIELD *)
  86.     INVOICEInvoiceDate : FieldHandle;                      
  87.     INVOICEUnitPrice : FieldHandle;                        
  88.     INVOICEAmount : FieldHandle;                           
  89.     INVOICEDiscount : FieldHandle;                         
  90.     INVOICEShipVia : FieldHandle;                          
  91.     INVOICERet : Integer;
  92.  
  93. (*----------------------------------------------------------------
  94.                        Function Prototypes                        
  95. -----------------------------------------------------------------*)
  96.  
  97. FUNCTION INVOICEError(ErrCode:Integer):Integer;
  98. FUNCTION INVOICETblOpen(Password:String):Integer;
  99. FUNCTION INVOICETblClose:Integer;
  100. FUNCTION INVOICESrchFld(SearchMode:Integer; FieldToSearch:String; var RecordVal:INVOICETABLEENTRY):Integer;
  101.  
  102. IMPLEMENTATION
  103.  
  104. (*----------------------------------------------------------------
  105.                           Function Implementation                  
  106. -----------------------------------------------------------------*)
  107.  
  108. FUNCTION INVOICEError(ErrCode:Integer):Integer;
  109.  
  110. BEGIN
  111.     if (ErrCode > 0) then        
  112.         INVOICEError := ErrCode
  113.     else        
  114.         INVOICEError := PXSUCCESS;
  115. END;
  116.  
  117. FUNCTION INVOICETblOpen(Password:String):Integer;
  118.  
  119. BEGIN
  120.     if (Password <> NoPassword) then        
  121.         BEGIN
  122.             INVOICERet := PXPswAdd(Password);
  123.             if (INVOICERet <> PXSUCCESS) then                
  124.                 BEGIN
  125.                     INVOICERet := INVOICEError(INVOICERet);
  126.                     if (INVOICERet <> PXSUCCESS) then                        
  127.                         BEGIN
  128.                             INVOICETblOpen := INVOICERet;
  129.                             Exit;
  130.                         END;
  131.                 END;
  132.         END;
  133.     INVOICERet := PXTblOpen('INVOICE',INVOICETable,0,Buffered);
  134.     if (INVOICERet <> PXSUCCESS) then        
  135.         BEGIN
  136.             INVOICERet := INVOICEError(INVOICERet);
  137.             if (INVOICERet <> PXSUCCESS) then                
  138.                 BEGIN
  139.                     INVOICETblOpen := INVOICERet;
  140.                     Exit;
  141.                 END;
  142.         END;
  143.     INVOICERet := PXRecBufOpen(INVOICETable,INVOICERecord);
  144.     if (INVOICERet <> PXSUCCESS) then        
  145.         BEGIN
  146.             INVOICERet := INVOICEError(INVOICERet);
  147.             if (INVOICERet <> PXSUCCESS) then                
  148.                 BEGIN
  149.                     INVOICETblOpen := INVOICERet;
  150.                     Exit;
  151.                 END;
  152.         END;
  153.     INVOICERet := PXFldHandle(INVOICETable,'Catalog Number',INVOICECatalogNumber);
  154.     if (INVOICERet <> PXSUCCESS) then        
  155.         BEGIN
  156.             INVOICERet := INVOICEError(INVOICERet);
  157.             if (INVOICERet <> PXSUCCESS) then                
  158.                 BEGIN
  159.                     INVOICETblOpen := INVOICERet;
  160.                     Exit;
  161.                 END;
  162.         END;
  163.     INVOICERet := PXFldHandle(INVOICETable,'Invoice Number',INVOICEInvoiceNumber);
  164.     if (INVOICERet <> PXSUCCESS) then        
  165.         BEGIN
  166.             INVOICERet := INVOICEError(INVOICERet);
  167.             if (INVOICERet <> PXSUCCESS) then                
  168.                 BEGIN
  169.                     INVOICETblOpen := INVOICERet;
  170.                     Exit;
  171.                 END;
  172.         END;
  173.     INVOICERet := PXFldHandle(INVOICETable,'Invoice Date',INVOICEInvoiceDate);
  174.     if (INVOICERet <> PXSUCCESS) then        
  175.         BEGIN
  176.             INVOICERet := INVOICEError(INVOICERet);
  177.             if (INVOICERet <> PXSUCCESS) then                
  178.                 BEGIN
  179.                     INVOICETblOpen := INVOICERet;
  180.                     Exit;
  181.                 END;
  182.         END;
  183.     INVOICERet := PXFldHandle(INVOICETable,'Unit Price',INVOICEUnitPrice);
  184.     if (INVOICERet <> PXSUCCESS) then        
  185.         BEGIN
  186.             INVOICERet := INVOICEError(INVOICERet);
  187.             if (INVOICERet <> PXSUCCESS) then                
  188.                 BEGIN
  189.                     INVOICETblOpen := INVOICERet;
  190.                     Exit;
  191.                 END;
  192.         END;
  193.     INVOICERet := PXFldHandle(INVOICETable,'Amount',INVOICEAmount);
  194.     if (INVOICERet <> PXSUCCESS) then        
  195.         BEGIN
  196.             INVOICERet := INVOICEError(INVOICERet);
  197.             if (INVOICERet <> PXSUCCESS) then                
  198.                 BEGIN
  199.                     INVOICETblOpen := INVOICERet;
  200.                     Exit;
  201.                 END;
  202.         END;
  203.     INVOICERet := PXFldHandle(INVOICETable,'Discount',INVOICEDiscount);
  204.     if (INVOICERet <> PXSUCCESS) then        
  205.         BEGIN
  206.             INVOICERet := INVOICEError(INVOICERet);
  207.             if (INVOICERet <> PXSUCCESS) then                
  208.                 BEGIN
  209.                     INVOICETblOpen := INVOICERet;
  210.                     Exit;
  211.                 END;
  212.         END;
  213.     INVOICERet := PXFldHandle(INVOICETable,'Ship Via',INVOICEShipVia);
  214.     if (INVOICERet <> PXSUCCESS) then        
  215.         BEGIN
  216.             INVOICERet := INVOICEError(INVOICERet);
  217.             if (INVOICERet <> PXSUCCESS) then                
  218.                 BEGIN
  219.                     INVOICETblOpen := INVOICERet;
  220.                     Exit;
  221.                 END;
  222.         END;
  223.     INVOICETblOpen := PXSUCCESS;
  224. END;
  225.  
  226. FUNCTION INVOICETblClose:Integer;
  227.  
  228. BEGIN
  229.     INVOICERet := PXTblClose(INVOICETable);
  230.     if (INVOICERet <> PXSUCCESS) then        
  231.         BEGIN
  232.             INVOICERet := INVOICEError(INVOICERet);
  233.             if (INVOICERet <> PXSUCCESS) then                
  234.                 BEGIN
  235.                     INVOICETblClose := INVOICERet;
  236.                     Exit;
  237.                 END;
  238.         END;
  239.     INVOICETblClose := PXSUCCESS;
  240. END;
  241.  
  242. FUNCTION INVOICESrchFld(SearchMode:Integer; FieldToSearch:String; var RecordVal:INVOICETABLEENTRY):Integer;
  243.  
  244. VAR    
  245.     FldHandle : FIELDHANDLE;
  246.     Paradate : Longint;
  247. BEGIN
  248.     INVOICERet := PXFldHandle(INVOICETable,FieldToSearch,FldHandle);
  249.     if (INVOICERet <> PXSUCCESS) then        
  250.         BEGIN
  251.             INVOICERet := INVOICEError(INVOICERet);
  252.             if (INVOICERet <> PXSUCCESS) then                
  253.                 BEGIN
  254.                     INVOICESrchFld := INVOICERet;
  255.                     Exit;
  256.                 END;
  257.         END;
  258.     INVOICERet := PXRecBufEmpty(INVOICERecord);
  259.     if (INVOICERet <> PXSUCCESS) then        
  260.         BEGIN
  261.             INVOICERet := INVOICEError(INVOICERet);
  262.             if (INVOICERet <> PXSUCCESS) then                
  263.                 BEGIN
  264.                     INVOICESrchFld := INVOICERet;
  265.                     Exit;
  266.                 END;
  267.         END;
  268.     case FldHandle of        
  269.         7 :            
  270.             INVOICERet := PXPutAlpha(INVOICERecord,INVOICEShipVia,RecordVal.ShipVia);
  271.     END;
  272.     if (INVOICERet <> PXSUCCESS) then        
  273.         BEGIN
  274.             INVOICERet := INVOICEError(INVOICERet);
  275.             if (INVOICERet <> PXSUCCESS) then                
  276.                 BEGIN
  277.                     INVOICESrchFld := INVOICERet;
  278.                     Exit;
  279.                 END;
  280.         END;
  281.     INVOICERet := PXSrchFld(INVOICETable,INVOICERecord,FldHandle,SearchMode);
  282.     if (INVOICERet <> PXSUCCESS) then        
  283.         BEGIN
  284.             INVOICERet := INVOICEError(INVOICERet);
  285.             if (INVOICERet <> PXSUCCESS) then                
  286.                 BEGIN
  287.                     INVOICESrchFld := INVOICERet;
  288.                     Exit;
  289.                 END;
  290.         END;
  291.     INVOICERet := PXRecGet(INVOICETable,INVOICERecord);
  292.     if (INVOICERet <> PXSUCCESS) then        
  293.         BEGIN
  294.             INVOICERet := INVOICEError(INVOICERet);
  295.             if (INVOICERet <> PXSUCCESS) then                
  296.                 BEGIN
  297.                     INVOICESrchFld := INVOICERet;
  298.                     Exit;
  299.                 END;
  300.         END;
  301.     INVOICERet := PXGetDoub(INVOICERecord,INVOICECatalogNumber,RecordVal.CatalogNumber);
  302.     if (INVOICERet <> PXSUCCESS) then        
  303.         BEGIN
  304.             INVOICERet := INVOICEError(INVOICERet);
  305.             if (INVOICERet <> PXSUCCESS) then                
  306.                 BEGIN
  307.                     INVOICESrchFld := INVOICERet;
  308.                     Exit;
  309.                 END;
  310.         END;
  311.     INVOICERet := PXGetDoub(INVOICERecord,INVOICEInvoiceNumber,RecordVal.InvoiceNumber);
  312.     if (INVOICERet <> PXSUCCESS) then        
  313.         BEGIN
  314.             INVOICERet := INVOICEError(INVOICERet);
  315.             if (INVOICERet <> PXSUCCESS) then                
  316.                 BEGIN
  317.                     INVOICESrchFld := INVOICERet;
  318.                     Exit;
  319.                 END;
  320.         END;
  321.     INVOICERet := PXGetDate(INVOICERecord,INVOICEInvoiceDate,ParaDate);
  322.     if (INVOICERet <> PXSUCCESS) then        
  323.         BEGIN
  324.             INVOICERet := INVOICEError(INVOICERet);
  325.             if (INVOICERet <> PXSUCCESS) then                
  326.                 BEGIN
  327.                     INVOICESrchFld := INVOICERet;
  328.                     Exit;
  329.                 END;
  330.         END;
  331.     INVOICERet := PXDateDecode(ParaDate,RecordVal.InvoiceDateMonth,RecordVal.InvoiceDateDay,RecordVal.InvoiceDateYear);
  332.     if (INVOICERet <> PXSUCCESS) then        
  333.         BEGIN
  334.             INVOICERet := INVOICEError(INVOICERet);
  335.             if (INVOICERet <> PXSUCCESS) then                
  336.                 BEGIN
  337.                     INVOICESrchFld := INVOICERet;
  338.                     Exit;
  339.                 END;
  340.         END;
  341.     INVOICERet := PXGetDoub(INVOICERecord,INVOICEUnitPrice,RecordVal.UnitPrice);
  342.     if (INVOICERet <> PXSUCCESS) then        
  343.         BEGIN
  344.             INVOICERet := INVOICEError(INVOICERet);
  345.             if (INVOICERet <> PXSUCCESS) then                
  346.                 BEGIN
  347.                     INVOICESrchFld := INVOICERet;
  348.                     Exit;
  349.                 END;
  350.         END;
  351.     INVOICERet := PXGetDoub(INVOICERecord,INVOICEAmount,RecordVal.Amount);
  352.     if (INVOICERet <> PXSUCCESS) then        
  353.         BEGIN
  354.             INVOICERet := INVOICEError(INVOICERet);
  355.             if (INVOICERet <> PXSUCCESS) then                
  356.                 BEGIN
  357.                     INVOICESrchFld := INVOICERet;
  358.                     Exit;
  359.                 END;
  360.         END;
  361.     INVOICERet := PXGetDoub(INVOICERecord,INVOICEDiscount,RecordVal.Discount);
  362.     if (INVOICERet <> PXSUCCESS) then        
  363.         BEGIN
  364.             INVOICERet := INVOICEError(INVOICERet);
  365.             if (INVOICERet <> PXSUCCESS) then                
  366.                 BEGIN
  367.                     INVOICESrchFld := INVOICERet;
  368.                     Exit;
  369.                 END;
  370.         END;
  371.     INVOICERet := PXGetAlpha(INVOICERecord,INVOICEShipVia,RecordVal.ShipVia);
  372.     if (INVOICERet <> PXSUCCESS) then        
  373.         BEGIN
  374.             INVOICERet := INVOICEError(INVOICERet);
  375.             if (INVOICERet <> PXSUCCESS) then                
  376.                 BEGIN
  377.                     INVOICESrchFld := INVOICERet;
  378.                     Exit;
  379.                 END;
  380.         END;
  381.     INVOICESrchFld := PXSUCCESS;
  382. END;
  383.  
  384. END.
  385.